"""
1. 导入模块socket
2. 创建socket套接字
3. 绑定端口号（必选）
4. 接收数据
5. 关闭套接字
"""

# 1. 导入模块socket
from socket import *
from utils import decode_data

# 2. 创建socket套接字
udp_socket = socket(AF_INET, SOCK_DGRAM)

# 3. 绑定端口号（必选）
udp_socket.bind(("", 8888))

# 4. 接收数据
# 代码会阻塞在这里，收到数据就会自动释放阻塞
# 参数：缓冲区大小，最大接受1024个字节的数据
# 返回值：元组：(b'\xc4\xe3\xba\xc3123abc', ("127.0.0.1", 3333))
#      元素1：字节数组类型的数据
#      元素2：发送者的元组类型IP和端口号
data, address = udp_socket.recvfrom(1024)

msg = decode_data(data)
print("收到来自【{}】的消息: {}".format(address, msg))

# 5. 关闭套接字
udp_socket.close()
